package cn.lanqiao.bigDate.service.sys;

import cn.lanqiao.bigDate.entity.sys.SysMenu;
import cn.lanqiao.bigDate.entity.sys.SysRole;
import cn.lanqiao.bigDate.entity.sys.SysRoleMenu;
import cn.lanqiao.bigDate.reslut.TreeNode;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * @description 角色信息表服务层
 * @author yang
 * @date 2022-03-13
 */
public interface SysRoleService {

    /**
     * 分页   模糊查询
     * @param page
     * @return
     */
    public IPage<SysRole> findByPage(Page<SysRole> page,String searchLike);

    /**
     * 查看所有信息
     * @return
     */
    public List<SysRole> findAll();

    /**
     * 按id查询角色
     * @param id
     * @return
     */
    public SysRole findSysRoleOne(Long id);


    /**
     * 修改角色信息
     * @param sysRole
     * @return
     */
    public Boolean updateSysRole(SysRole sysRole,String[] split);

    /**
     * 保存角色信息并添加权限
     * @param sysRole
     * @return
     */
    Boolean saveSysRole(SysRole sysRole, String[] split);

    /**
     * 保存角色信息
     * @param sysRole
     * @return
     */
    Boolean saveSysRole(SysRole sysRole);

    /**
     * 按id删除角色
     * @param ids 格式  id1,id2,id3
     * @return
     */
    Boolean deleteSysRole(String ids);

    /**
     * 按列表查询菜单树
     * @param menu
     * @param topName  根节点名称 可自定义
     * @return
     */
    List<TreeNode> findAllSysMenu(SysMenu menu, String topName);

    /**
     * 按id查询菜单
     * @param id
     * @return
     */
    SysMenu findSysMenuOne(Long id);


}